/**
 * 模块类型定义和工具函数
 */
import { ModuleType } from '@/types/state'

export interface ModuleTypeOption {
  value: ModuleType
  label: string
  color: string
  icon?: string
}

/**
 * 所有模块类型配置
 */
export const MODULE_TYPES: ModuleTypeOption[] = [
  { value: ModuleType.PROJECT, label: '项目管理', color: 'blue' },
  { value: ModuleType.REQUIREMENT, label: '需求管理', color: 'green' },
  { value: ModuleType.TASK, label: '任务管理', color: 'orange' },
  { value: ModuleType.DEFECT, label: '缺陷管理', color: 'red' },
  { value: ModuleType.VERSION, label: '版本管理', color: 'purple' },
  { value: ModuleType.DOCUMENT, label: '知识库', color: 'geekblue' },
  { value: ModuleType.USER, label: '用户管理', color: 'magenta' },
  { value: ModuleType.COMMENT, label: '评论管理', color: 'volcano' },
  { value: ModuleType.NOTIFICATION, label: '通知管理', color: 'gold' },
  { value: ModuleType.TEST_CASE, label: '用例管理', color: 'cyan' },
  { value: ModuleType.TEST_PLAN, label: '测试计划', color: 'cyan' },
  { value: ModuleType.APPROVAL, label: '审批管理', color: 'lime' }
]

/**
 * 根据模块类型获取配置
 */
export function getModuleConfig(moduleType: ModuleType): ModuleTypeOption | undefined {
  return MODULE_TYPES.find(m => m.value === moduleType)
}

/**
 * 根据模块类型获取标签
 */
export function getModuleLabel(moduleType: ModuleType): string {
  return getModuleConfig(moduleType)?.label || moduleType
}

/**
 * 根据模块类型获取颜色
 */
export function getModuleColor(moduleType: ModuleType): string {
  return getModuleConfig(moduleType)?.color || 'default'
}

